Comparison of assemblers

This is a list of assemblers: computer programs that translate ("assemble") assembly language source code into binary programs.

Contents

x86 assemblers

These are the x86 Assemblers for Intel 80x86 architecture microprocessors

Assembler OS Open source License x86-64 Active Development
A86/A386 Windows, DOS No Proprietary No No
ACK Linux, Minix, Unix-like Yes BSD since 2003 No 1985-?[1]
Arrowsoft Assembler DOS No Public Domain No No
IBM ALP OS/2 No Proprietary No No
AT&T Unix System V No Proprietary No 1985-?[2]
Bruce D. Evans' as86 Minix 1.x, 16-bit part in Linux Yes GPL No 1988-2001[3]
Digital Research ASM86 CP/M-86, DOS, Intel's ISIS No Proprietary No 1978-1992
DevelSoftware Assembler Windows, Linux, Unix-like No Free listed, n/a Yes
FASM Windows, DOS, Linux, Unix-like Yes BSD Yes Yes
GAS Unix-like, Windows, DOS, OS/2 Yes GPL Yes Since 1987
GoAsm Windows No Free Yes Yes
HLA Windows, Linux, FreeBSD, Mac OS X Yes Public domain No Yes
JWASM Windows, DOS, Linux, FreeBSD, OS/2 Yes Sybase Open Watcom Public License Yes Yes
LZASM Windows, DOS No Free No No
MASM Windows, DOS, OS/2 No Microsoft EULA Yes Since 1981[4]
Mical a86 Unix, DOS, PC/IX Yes ? No 1982-1984[5]
NASM Windows, Linux, Mac OS X, DOS, OS/2 Yes BSD Yes Since 1996
Tim Paterson's ASM 86-DOS, DOS DEBUG No Proprietary No 1980-1983
POASM Windows, Windows Mobile No Free Yes Yes
SLR's OPTASM DOS No Proprietary No No
TASM Windows, DOS No Proprietary No ?[6]
WASM Windows, DOS, OS/2 Yes Sybase Open Watcom Public License No ?
TCCASM Unix-like, Windows Yes LGPL Yes Yes
Xenix Xenix 2.3 and 3.0 (before 1985) No Proprietary No 1982-1984
Yasm Windows, DOS, Linux, Mac OS X, Unix-like Yes BSD Yes Yes
  1. ^ Part of the Minix 3 source tree, but without obvious development activity. The full source history is available.
  2. ^ Developed by Interactive in 1986 when they ported System V to Intel iAPX286 and 80386 architectures. Archetypical of ATT syntax because it was used as reference for GAS. Still used for The SCO Group's products, Unixware and OpenServer.
  3. ^ Home site does not appear active any more. Also offered as part of FreeBSD Ports, in bcc-1995.03.12.
  4. ^ Active and supported, but not advertised.
  5. ^ Developed in 1982 at MIT as a cross-assembler, it was picked up by Interactive in 1983 when they developed PC/IX under IBM contract. The syntax was later used as base for ACK assembler, to be used in Minix 1.x toolchain.
  6. ^ Part of the C++Builder Tool Chain, but not sold as a stand-alone product, or marketed since the CodeGear spin-off; Borland was still selling it until then. Version 5.0, the last, is dated 1996.
  7. ^ Turbo Assembler was developed as 'Turbo Editasm' by Uriah Barnett from Speedware Inc (Sacramento, CA) between 1984 and 1987. It was later sold to (or marketed by) Borland as their Turbo Assembler.

Multiple target assemblers

GNU Assembler (gas): GPL: many target instruction sets including ARM architecture, Atmel AVR, 80x86 architecture, Freescale 68HC11, Freescale v4e, Motorola 68k, TI MSP430, Zilog Z80

ASxxxx Cross Assembler (part of the Small Device C Compiler project): GPL: several target instruction sets including Intel 8051, Zilog Z80, Freescale 68HC08, PIC microcontroller

Vasm portable and retargetable assembler: Target instruction sets including 680x0, Coldfire, PowerPC, C16x/ST10, 6502, Zilog Z80.

The Amsterdam Compiler Kit (ACK) targets many architectures of the 1980s, including 6502, 6800, 680x0, ARM, x86, Zilog Z80 and Z8000.

Other assemblers

Assembler License Instruction set Host platform
Babbage Proprietary GEC 4000 series GEC 4000 series
COMPASS[1] Proprietary CDC mainframe CDC mainframe
BAL Proprietary IBM System/360 IBM BPS/360
IBM Assembler XF Proprietary IBM System/370 IBM System/370
MACRO-11 Unknown PDP-11 PDP-11
HLASM Proprietary z/Architecture z/Architecture
Lisa Proprietary MOS Technology 6502 Apple II series
Atari Assembler Editor Proprietary MOS Technology 6502 Atari 8-bit family
MAC/65 Proprietary MOS Technology 6502 Atari 8-bit family
French Silk Proprietary MOS Technology 6502 Commodore 64
PASMO GPL Zilog Z80 numerous
MRS GPL Zilog Z80, 8080 ZX Spectrum, PMD-85
ASEM-51 Free 8051 Embedded Systems
GPASM GPL PIC microcontroller many
ID3E Free for academic use SC123 SC123 emulator
MIPS Free MIPS architecture MIPS
GFA-Assembler Proprietary Motorola 680x0 Atari ST
GST Macro Assembler Proprietary Motorola 680x0 Atari ST
Digital Research Assembler Proprietary Motorola 680x0 Atari ST
Metacomco Macro Assembler Proprietary Motorola 680x0 Commodore Amiga, Atari ST
Seka Assembler Proprietary Motorola 680x0 Commodore Amiga, Atari ST
HiSoft DevPak Assembler Proprietary Motorola 680x0 Commodore Amiga, Atari ST
ASM-One Macro Assembler Free Motorola 680x0 Commodore Amiga
A68K Free Motorola 680x0 Commodore Amiga
OMA Proprietary Motorola 680x0 Commodore Amiga
MaxonASM Proprietary Motorola 680x0 Commodore Amiga
StormPowerASM Proprietary PowerPC PowerPC Amiga
Archimedes Assembler Proprietary ARM Acorn Archimedes
MPW IIgs Assembler Proprietary WD 65C816 Apple IIgs
Mac Assembler Proprietary Motorola 680x0 Apple Macintosh
Metasymbol Proprietary SDS/XDS Sigma systems SDS/XDS Sigma systems
MPW Assembler Proprietary Motorola 680x0 Apple Macintosh
Fantasm Proprietary Motorola 680x0 Apple Macintosh
Power Fantasm Proprietary PowerPC Apple Power Macintosh
MPW Power Assembler Proprietary PowerPC Apple Power Macintosh

References

  1. ^ COMPASS is actually a family of assemblers for disparate machines.